package cn.iocoder.moyun.module.curd.dal.mysql.stringtext;

import cn.iocoder.moyun.framework.common.pojo.PageResult;
import cn.iocoder.moyun.framework.common.pojo.SortablePageParam;
import cn.iocoder.moyun.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.moyun.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.moyun.module.curd.controller.admin.stringtext.vo.stringtext.StringTextPageReqVO;
import cn.iocoder.moyun.module.curd.dal.dataobject.stringtext.StringTextDO;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface StringTextMapper extends BaseMapperX<StringTextDO> {
    default PageResult<StringTextDO> selectPage(StringTextPageReqVO reqVO) {
        // 1. 创建分页参数对象，设置页码和页大小
        SortablePageParam pageParam = new SortablePageParam();
        pageParam.setPageNo(reqVO.getPageNo()); // 假设StringTextRespVO添加了分页相关方法
        pageParam.setPageSize(reqVO.getPageSize());

        // 2. 构建查询条件
        LambdaQueryWrapperX<StringTextDO> queryWrapper = new LambdaQueryWrapperX<StringTextDO>()
                .likeIfPresent(StringTextDO::getText, reqVO.getText())
                .orderByDesc(StringTextDO::getId);
        // 3. 调用基类的selectPage方法，传递正确的参数
        return selectPage(pageParam, queryWrapper);
    }
}
